--- alias: agora user perspective gardenid: AGORA2 --- [[push]] [[agora rfcs]] # [[Agora user perspective]] The [[Agora]] currently is slightly more [[consensus]]-prone than [[dissensus]]-prone. This has many benefits, but it also precludes ways to socialize dissensus. [[User namespace]]s have already been implemented as `agora/@user/node`. We should build upon that and create user-centred perspectives of the Agora. An `agora` has content which was built by consensus/convention/aggregation between its users. An `agora/@user` namespace builds upon the `agora`'s content, but hides/marks certain content according to certain `@user`'s [[agora action]]s. This was inspired by [[@maya]]'s [federated notes](https://maya.land/notetaking/federated-notes#no-automation-of-equality). ## Block action The `block` action means `a specific node/subnode should not be linked in any way to another specific node/subnode`. Specific subnodes (`@user/subnode`) and nodes (`node`) can be `block`ed. All subnodes from another user can also be `block`ed (`@user`). ### Possible syntaxes We should have multiple conventions: **Inline:** - tag action: `#block [[node]]` - link action: `[[block]] [[node]]` - list: - [[block]] - [[@user]] - [[node]] - [[node]] - [[@user/subnode]] - #block - [[node]] - [[node]] - [[node]] - [[@user]] **Front matter** - Markdown front matter: `agora-block: node` - HTML data attribute: `data-agora-block='node'` ## Hide action The `hide` action means `a specific node/subnode/user should not appear on this user perspective`. Specific subnodes (`@user/subnode`) and nodes (`node`) can be `hide`ed. An user can also be `hide`ed (`@user`). The `hide` action can be interpreted as a global `block`: `none of my nodes and subnodes should be linked in any way to an user's nodes and subnodes`. ### Possible syntaxes We should have multiple conventions: **Inline:** - tag action: `#hide [[node]]` - link action: `[[hide]] [[node]]` - list: - [[hide]] - [[@user]] - [[node]] - [[node]] - [[@user/subnode]] - #hide - [[node]] - [[node]] - [[node]] - [[@user]] **Front matter** - Markdown front matter: `agora-hide: node` - HTML data attribute: `data-agora-hide='node'` - (in the future) [[agora garden yaml file]]: agora-hide: - node - node - user/subnode - user: - subnode - subnode - user ## (WIP) Agree/Disagree action ## (WIP) Like/Dislike action